Method for single-image-based fully automatic three-dimensional hair modeling

ABSTRACT

Provided is a single-image-based fully automatic three-dimensional (3D) hair modeling method. The method mainly includes four steps: generation of hair image training data, hair segmentation and growth direction estimation based on a hierarchical depth neural network, generation and organization of 3D hair exemplars, and data-driven 3D hair modeling. The method can automatically and robustly generate a complete high quality 3D model of which the quality reaches the level of the currently most advanced user interaction-based technology. The method can be used in a series of applications, such as hair style editing in portrait images, browsing of hair style spaces, and searching for Internet images of similar hair styles.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of International Application No. PCT/CN2016/079613, filed on Apr. 19, 2016, which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The present disclosure relates to the field of single-image-based three-dimensional (3D) modeling, and more particularly, to a method for automatic 3D modeling of hair of a portrait image.

BACKGROUND

Image-based hair modeling is an effective way to create high quality hair geometry. Hair acquisition techniques based on multi-view images often require complex equipment setups and long processing cycles (LUO, L., LI, H., AND RUSINKIEWICZ, S. 2013. Structure-aware hair capture. ACM Transactions on Graphics (TOG) 32, 4, 76.) (ECHEVARRIA, J I, BRADLEY, D., GUTIERREZ, D., AND BEELER, T. 2014. Capturing and stylizing hair for three-dimensional fabrication. ACM Transactions on Graphics (TOG) 33, 4, 125.) (HU, L., MA, C., LUO, L., AND LI, H. 2014. Robust hair capture using simulated examples. ACM Transactions on Graphics (TOG) 33, 4, 126.) (HU, L., MA, C., LUO, L., WEI, L.-Y, AND LI, H. 2014. Capturing braided hair styles. ACM Transactions on Graphics (TOG) 33, 6, 225.), thus, they are not suitable for average users, and are too costly for generating a large number of 3D hair models.

Recently, single-image based hair modeling techniques have yielded impressive results. The prior art achieves modeling by using different kinds of prior knowledge, such as layer boundary and occlusion (CHAI, M., WANG L., WENG, Y, YU, Y, GUO, B., AND ZHOU, K. 2012. Single-view hair modeling for portrait manipulation. CM Transactions on Graphics (TOG) 31, 4, 116) (CHAI, M., WANG L., WENG, Y, JIN, X., AND ZHOU, K. 2013. Dynamic hair manipulation in images and videos. ACM Transactions on Graphics (TOG) 32, 4, 75.), a 3D hair model database (HU, L., MA, C., LUO, L., AND LI, H. 2015. Single-view hair modeling using a hair style database. ACM Transactions on Graphics (TOG) 34, 4, 125.), and shadow cues (CHAI, M., LUO, L., SUNKAVALLI, K., CARR, N., HADAP, S., 747 AND ZHOU, K. 2015. High-quality hair modeling from a single portrait photo. ACM Transactions on Graphics (TOG) 34, 6, 204.). But these techniques all require different kinds of user interactions, for example, it is required to manually segment the hair from the image, or to provide strokes by a user to provide hair direction information, or to draw two-dimensional (2D) strands by a user to achieve retrieval. These user interactions typically take 5 minutes, and it takes about 20 minutes to generate a final result, which limits the generation of a large scale of hair models. Unlike the above methods, the present disclosure is fully automatic with high efficiency, and can handle a large number of images at the Internet level.

SUMMARY

The object of the present disclosure is to provide a new fully automatic single-image-based 3D hair modeling method in view of the shortcomings of the prior art, where a hair segmentation result and a direction estimation of high-precision and robustness are obtained through a hierarchical deep convolutional neural network, and then a data-driven method is utilized to match a 3D hair exemplar model to the segmented hair and direction map so as to obtain a final hair model illustrated as strands. The result of this method is comparable to the results of current methods by means of user interactions, and has a high practical value.

The disclosure is realized by following technical solution, which is a fully automatic single-image-based 3D hair modeling method, comprising following steps:

(1) preprocessing of hair training data: labeling hair mask images and hair growth direction maps, and obtaining a classification of different hair styles by an unsupervised clustering method;

(2) fully automatic high-precision hair segmentation and direction estimation: training a deep neural network based on labeled data of step (1), utilizing a hierarchical deep convolutional neural network obtained by the training to achieve hair distribution class identification, hair segmentation and hair growth direction estimation;

(3) generation and organization of 3D hair exemplars: generating a large number of new hair style exemplars by decomposing and recombining hair of original hair models, and generating hair mask images and hair growth direction maps by projection to facilitate subsequent matching;

(4) data-driven hair modeling: matching the 3D hair exemplars in step (3) with a hair mask image and a hair growth direction map segmented in step (2), performing deformation, and generating a final model.

The disclosure has beneficial effects that, a fully automatic single-image-based 3D hair modeling method has been proposed by the disclosure for the first time, where a hair segmentation and a growth direction estimation of high-precision and robustness are achieved by means of a deep neural network, and efficient hair matching and modeling are achieved by a data-driven method. The effect achieved through the present disclosure is comparable to that achieved through the current methods by means of user interactions, and is automatic and efficient, which can be used for modeling a wide range of Internet portrait images.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram of labeling training data; left column: original images; middle column: hair segmentation mask images; right column: direction-based sub-region segmentation and direction maps;

FIG. 2 is a flow chart of hair style identification, hair segmentation and direction estimation; for the estimation of a given hair region, firstly, the class of the hair style is identified, and then a segmentation mask image and a direction map are obtained by selecting a corresponding segmentation network and a direction estimation network according to the class;

FIG. 3 is a process diagram of segmentation and recombination of 3D hair exemplars and generation of new exemplars; left column of each row: two original hair exemplars; three columns on the right of each row: decomposing original strands and then recombining and generating three new hair exemplars;

FIG. 4 is 3D hair result images automatically modeled each from a single image according to the present disclosure; each column from left to right: an input image, an automatically segmented hair mask image and a direction estimation map, a deformed matching hair exemplar, and a final strand level hair model from three different view angles.

DESCRIPTION OF EMBODIMENTS

The core technology of the disclosure utilizes a deep neural network to achieve fully automatic high-precision hair segmentation and direction estimation, and utilizes a data-driven hair matching method to achieve high-quality 3D hair modeling. The method mainly includes the following four main steps: preprocessing of hair training data, hair segmentation and direction estimation based on a deep neural network, generation and organization of 3D hair exemplars, and data-driven 3D hair modeling.

1. Preprocessing of hair training data: labeling the two-dimensional (2D) mask and growth direction of hair, and obtaining a classification of different hair styles by an unsupervised clustering method;

1.1 Labeling Training Data:

20,000 portrait photos with clearly visible faces and hair as well as common hair styles and sufficient light intensity are used as training data. PaintSelection (LIU, J., SUN, J., AND SHUM, H.-Y. 2009. Paint selection. In ACM Transactions on Graphics (ToG), vol. 28, ACM, 69.) is used for matting the photos to obtain binary region masks M_(h) of the hair. For each of the photos, the hair region M_(h) is segmented into a number of hair growth direction sub-regions with consistent smooth variations. For each sub-region, the direction of growth of the strand is labeled with one stroke, then the direction is propagated to all pixels of the sub-region and combined with a non-directional orientation map O calculated per pixel to generate a direction map D. Finally, the continuous direction range [0,2π) is discretized into four intervals ([0,0.5π), [0.5π,π), [π,1.5π), [1.5 π, 2π)), and then these four labels are assigned to each pixel to obtain a direction label map M_(d). Pixels that are not in the hair region will also have a label. FIG. 1 shows an example of labeling a hair mask image and a direction map.

1.2 Hair Style Class Calculation

For each annotated image I, firstly, a robust face alignment method (CAO, X., WEI, Y., WEN, F., AND SUN, J. 2014. Face alignment by explicit fractal regression. International Journal of Computer Vision 107, 2, 177-190.) is used to detect and locate the face label, and then I is matched with I′ in a reference face coordinate system for scale and up-direction rectification. Then, a circular distribution histogram (divided into n_(H) intervals, n_(H)=16) is constructed around a polar coordinate system of the center of the face. Each interval records the number of hair pixels whose polar angles fall within the intervals. After normalization, the histogram can be regarded as an eigenvector of the image. Finally, based on these distribution eigenvectors, a K-means clustering method is used to classify the hair styles in the training images into four classes. An L1-based Earth Mover distance (EMD) (LING, H., AND OKADA, K. 2007. An efficient earth mover's distance algorithm for robust histogram comparison. Pattern Analysis and Machine Intelligence, IEEE Transactions on 29, 5,820 840-853.) is used to calculate the distance between two histograms H_(a) and H_(b). Each cluster center g is the element with the minimum sum distances with other elements in the cluster.

2. Hair segmentation and direction estimation based on a deep neural network: training a deep neural network based on labeled data of step 1, utilizing a hierarchical deep convolutional neural network obtained by the training to achieve hair distribution class identification, hair segmentation and hair growth direction estimation; the algorithm flow is shown in FIG. 2.

2.1 Estimation of Hair Region

Given a portrait photo, firstly, the face alignment method in step 1.2 is used to detect a set of facial feature points and the photo is aligned to the reference face coordinate system. Next, for each hair style distribution class, 20 typical hair bounding boxes are selected and are aligned with the face region of the photo through rotation and scaling, resulting in a set of candidate hair regions. The typical hair bounding boxes are generated by pre-clustering the bounding box of each class of hair distribution. These candidate regions will be cropped and passed independently to a subsequent identifier for hair style identification.

2.2 Hair Style Identification, Hair Segmentation and Direction Estimation

Hair style identification is performed based on the hair regions obtained in step 2.1. Hair style identification is to use an R-CNN deep convolutional neural network structure (GIRSHICK, R., DONAHUE, J., DARRELL, T., AND MALIK, J. 2014. Rich feature hierarchies for accurate object detection and semantic segmentation. In Computer Vision and pattern Recognition (CVPR), 2014 IEEE Conference on, IEEE, 580-587.), and further study on the hair training data labeled in step 1.1. After obtaining the class of the hair style, the segmentation and direction estimation of the hair regions are performed. The hair segmentation and hair direction estimation are both designed based on the public deep neural network VGG16 (SIMONYAN, K., AND ZISSERMAN, A. 2014. Very deep convolutional network for large-scale image identification. arXivpreprint859 arXiv: 1409.1556.), the network is a classification network which is pre-trained on the public dataset ImageNet and identifies 1,000 classes. The present disclosure has made changes based on this, so that the output of the network is the label of each pixel (the number of output label for a segmenter is 2, and the number of output label for a direction estimator is 5). Firstly, the max-pooling layer of the last two max-pooling layers 2×2 are removed to increase the network layer resolution, and the receptive fields following convolutional layers are also enlarged from 3×3 and 7×7 to 5×5 and 25×25 (padded with zeros), respectively. Secondly, all fully connected layers are replaced with convolutional layers, which allows a single identification network to be compatible with the pixel-by-pixel label segmenter of the present disclosure. Thirdly, during the training stage, a loss layer calculates the sum of the cross entropy over the entire image between the output labels and the manual labels (since there are three max-pooling layers in VGG16, the resolution of the image is downsampled by eight times). Finally, during the testing stage, the output label image is upsampled to the original image size by a bilinear interpolation and refined with a fully connected CRF.

In the present disclosure, the image sizes for both the training and testing stages are 512×512. In the testing stage, given a portrait photo I, a face detector first aligns the image into the face coordinate system and generates a set of hair region estimations around the face. A hair style identification network then tests each candidate region and selects the one with the highest score as the class of the hair style. The hair segmentation network and direction estimation network corresponding to this class will be applied to I in turn. The output of the segmentation network is a hair segmentation mask M_(I) with the same size as I (with an alpha channel), while the output of the direction estimation network is an equal-sized direction label image that is combined with the non-directional orientation image to generate the final direction map D_(I).

3. Generation and organization of 3D hair exemplars: generating a large number of new hair style exemplars by decomposing and recombining strands of original hair models, and generating 2D mask images and hair growth direction maps by projection to facilitate subsequent matching;

3.1 Preprocessing

300 3D models of different hair styles {H} are collected. All models have been aligned to the same reference human head model and are composed of a large number of independent thin polygon-strands {S_(H)}. Each strand represents a consistent hair wisp, with the growth direction encoded in parametric texture coordinates. A further process is performed for each model to improve the quality of the model: for strands that are not connected to the scalp, strands that are connected to the scalp and are closest to these strands are found and smoothly connected with these strands to form longer strands that are connected to the scalp; for over-thick strands (more than one-tenth of the radius of the human head), they are evenly divided into two sets of strands along the growth direction, until the strand width meets the requirement.

3.2 Exemplar Generation

The 3D hair exemplars obtained in step 3.1 are decomposed into different sets of strands. Firstly, a simplified internal representation, i.e. an equally-spaced polyline {p₁ ^(i), p₂ ^(i), . . . , p_(n) ^(i)} that goes through the center of the strands plus an average radius r_(i), is used to represent each strand {S_(i)}. Then, for each hair model, its strands are clustered into different sets of strands, and the distance between the strands is defined as:

${{d_{s}\left( {S_{a},S_{b}} \right)} = \frac{\sum\limits_{i = 1}^{\min {({n_{a},n_{b}})}}{\max \left( {{{{p_{i}^{a} - p_{i}^{b}}} - r_{a} - b_{b}},0} \right)}}{\min \left( {n_{a},n_{b}} \right)}},$

where S_(a) and S_(b) are strands, n_(a) and n_(b) are the numbers of polylines of the strands, p_(i) ^(a) and p_(i) ^(b) are polylines, and r^(a) and r^(b) are average radiuses of the strands. Each hair model is decomposed into about ten sets of strands, and these strand sets are combined to generate more new exemplars. FIG. 3 shows an example of hair exemplar decomposition and recombination to generate a new exemplar.

3.3 Exemplar Organization

In the present disclosure, after generating new exemplars, all models are organized in an ascending order according to the area of the hair mask region of the front view of the exemplar. To further improve the matching efficiency, two projections are further generated for each hair exemplar H:

A hair region mask image M*_(H). It is a 2D projection mask image of the hair exemplar. In order to avoid the effects of stray strands, Gaussian filter is used to smooth the mask image in the present disclosure.

Direction map D*_(H). In the present disclosure, colors are used to represent the projected hair directions, i.e., XYZ components of the direction vector are used to represent values of RGB channels. Thus, a 2D projection direction map of the hair exemplar can be drawn.

To handle non-front viewing angles, six angles are uniformly sampled for yaw and pitch angles in [−π/4,π/4]. Thus, there will be 6×6 sets of hair mask images and direction maps. All images are downsampled to 100×100 for subsequent matching and calculation efficiency.

4. Data-driven hair modeling: matching the 3D hair exemplars in step 3 with a hair mask image and a hair growth direction map segmented in step 2, performing deformation, and generating a final model;

4.1 Image-Based 3D Hair Exemplar Matching

The hair mask images and the hair growth direction maps obtained in step 2 are used to select a set of suitable 3D exemplars. It takes two steps of comparisons to achieve a quick search of a large number of data exemplars:

Area comparison: firstly, according to facial feature points, input images are aligned with the coordinate system of the exemplar projection image. The hair mask area of the exemplar projection |M_(H)| is then compared with the hair mask area of the input image |M_(I)|. The mask area of the exemplar is retained within the range (0.8|M_(I)|,1.25|M_(I)|).

Image matching: in the present disclosure, for each exemplar passed the comparison in the first step, the hair mask image and the direction map of the exemplar (M*_(H), D*_(H)) are compared with the hair mask image and the direction map of the input image (M*_(I), D*_(I)). If the input image is not a front view image, the image with the closet angle view will be selected among the precalculated 6×6 sets of exemplar projection images for comparison. The comparison of hair mask images is calculated based on the distance field W*_(I) of the M_(I) (BALAN, A O, SIGsAL, L., BLACK, M J, DAVIS, J E, AND HAUSSECKER, H W 2007. Detailed human shape and pose from images. In Computer Vision and pattern Recognition, 2007. CVPR'07. IEEE Conference on, IEEE, 1-8.):

${{d_{M}\left( {M_{H}^{*},M_{I}^{*}} \right)} = \frac{\sum\limits_{i \in {M_{H}^{*} \oplus M_{I}^{*}}}^{\;}{{W_{I}^{*}(i)}}}{M_{I}^{*}}},$

Where, M*_(H) and M*_(I) are the hair mask image of the exemplar and the hair mask image of the input image, respectively, M*_(H) ⊕M*_(I) represents the symmetry difference between two masks, W*_(I)(i) is the value of the distance field. The distance of the direction map is defined as the sum of the direction differences d_(d) ∈[0,π) of the pixels:

${d_{D}\left( {D_{H}^{*},D_{I}^{*}} \right)} = {\frac{\sum\limits_{i \in {M_{H}^{*}\bigcap M_{I}^{*}}}^{\;}{d_{d}\left( {{D_{H}^{*}(i)},{D_{I}^{*}(i)}} \right)}}{n_{M_{H}^{*}\bigcap M_{I}^{*}}}.}$

Where, D*_(H) and D*_(I) are the direction map of the exemplar and the direction map of the input image, respectively, M*_(H)∩M*_(I) is the overlapping region of two masks, n is the number of pixels of the overlapping region, d_(d)(D*_(H)(i), D*_(I)(i)) is overlapping pixels direction differences. Finally, the exemplars that satisfy d_(M)(M*_(H), M*_(I))<4 and d_(D)(D*_(H), D*_(I))<0.5 are retained as final candidate exemplars {H}.

4.2 Hair Deformation

Firstly, the boundary matching is performed between the hair mask image of the exemplar hair and the mask image of the input image. For each candidate exemplar H, firstly, it is transformed to the pose of the face in I, and then the hair mask image and the direction map (M*_(H), D*_(H)) are obtained by rendering according to the method in step 3.3. Here, the rendered image is not a downsampled thumbnail, instead, the resolution of the rendered image is the same as the input image. Then, 200/2000 points {P^(H)}/{P^(I)} are uniformly sampled at the boundaries of the masks M_(H)/M_(I), respectively. For each boundary point P_(i) ^(H)/P_(i) ^(I), its position is denoted as P_(i) ^(H)/P_(i) ^(I), and outward normal as n_(i) ^(H)/n_(i) ^(I). Point-to-point correspondences between boundaries M({P^(H)}→{P_(I)}) are calculated. For each point P_(i) ^(H) of the hair mask boundary of a candidate model, it is obtained by optimizing the following matching energy equation at the optimal correspondence point P_(M(i)) ^(I) of the input hair mask boundary:

${\arg \; {\min\limits_{M}{\sum\limits_{P_{i}^{H}}^{\;}\left( {{E_{p}\left( P_{i}^{H} \right)} + {E_{e}\left( {P_{i}^{H},P_{i + 1}^{H}} \right)}} \right)}}},$

where E_(p) and E_(e) are energy items that measure point matching and edge matching. E_(p) expects the positions of the pair of points and the normals to be as close as possible, and the value of the weight λ_(n) is 10; E_(e) expects the mapping M to maintain the length of the original boundary as much as possible:

E _(p)(P _(i) ^(H))=∥p _(i) ^(H) −p _(M(i)) ^(I)∥²+λ_(n)(1−n _(i) ^(H) ·n _(M(i)) ^(I))²,

E _(e)(P _(i) ^(H) ,P _(i+1) ^(H))=(∥p _(i) ^(H) −p _(i+1) ^(H) ∥−∥p _(M(i)) ^(I) −p _(M(i+1)) ^(I)∥)².

Where p_(i) ^(H) is the position of the boundary point of the hair mask image of the candidate exemplar, p_(M(i)) ^(I) is the position of the optimal correspondence point of the boundary of the input hair mask, n_(i) ^(H), n_(M(i)) ^(I) are the normals of p_(i) ^(H) and p_(M(i)) ^(I), respectively, λ_(n) is the weight, and p_(i+1) ^(H), p_(M(i+1)) ^(I) are adjacent sampling points of p_(i) ^(H) and p_(M(i+1)) ^(I), respectively. The above energy equation is solved under the framework of the Hidden Labelov Model (HMM) using the classical Viterbi algorithm (FORNEY J R, G. D. 1973. The viterbi algorithm. Proceedings of the IEEE 61, 3, 268-278).

After the boundary matching, boundary correspondences are diffused to all pixels of M_(H) via a global smooth warping function W(M_(H)→M_(I)). This function uses a Thin-Plate-Spline (TPS) algorithm:

${{\arg \; {\min\limits_{W}{\sum\limits_{p_{i}^{H}}^{\;}{{{W\left( p_{i}^{H} \right)} - p_{M{(i)}}^{I}}}^{2}}}} + {\lambda \; {E_{F}(W)}}},$

Where W(p_(i) ^(H)) is the corresponding position in the input image I for p_(i) ^(H). E_(H)(W) is the Frobenius norm of the second-order partial derivative of the correspondence matrix W. The weight is λ=1000.

Finally, each vertex v of the candidate exemplar model H is transformed to the target v′ by the following optimization function:

$\arg \; {\min\limits_{v^{\prime}}{\sum\limits_{v_{i} \in V_{ij}}^{\;}{\left( {{{v_{i}^{\prime} - {W\left( v_{i} \right)}}}^{2} + {\lambda_{s}{{{\Delta \; v_{i}^{\prime}} - {\frac{\delta_{i}}{{\Delta \; v_{i}^{\prime}}}\Delta \; v_{i}^{\prime}}}}^{2}}} \right).}}}$

Where V_(H) denotes all the vertices of the exemplar H. W(v_(i)) is the corresponding position of v_(i), its XY coordinates are obtained via the above global smooth mapping function W, while the Z coordinate is kept unchanged. Δ is a discrete mesh Laplacian operator based on the cotangent function (DESBRUN, M., MEYER, M., SCHRODER, P., AND BARR, A H 1999. Implicit fairing of irregular meshes using diffusion and curvature flow. In Proceedings of ACM SIGGRAPH, 317-324.), λ_(i) is the magnitude of the Laplacian coordinates of the vertex v_(i) in the original model H. The weight is λ_(s)=1. The optimization function can be solved using the inexact Gaussian Newton method (HUANG, J., SHI, X., LIU, X., ZHOU, K., WEI, L.-Y., TENG, S.-H., BAO, H., GUO, B., AND SHUM, H.-Y. 2006. Subspace gradient domain mesh deformation. ACM Trans. Graph. 25, 3 (July), 1126-1134.). After the deformation, hair exemplars {H′} that match the input image better can be obtained.

4.3 Final Hair Generation

For the candidate exemplars {H′} obtained through the deformation in step 4.2, a comparison is performed regarding the final direction maps on full-pixel images (the comparison function is consistent with that in step 4.1), and the model it matching best with the direction map is selected to generate the final hair model. H* will then be converted to be represented as a 3D direction volume within the bounding box of the entire model, and direction diffusion is performed inside the entire volume with the direction vectors given by H* and surface normals of the scalp region being as constraints. Then, 10,000 strands are generated from seeds uniformly sampled on the scalp, with the guidance from volume direction filed. Finally, these strands are deformed according to the growth direction estimation map, to obtain the final hair model (HU, L., MA, C., LUO, L., AND LI, H. 2015. Single-view hair modeling using a hair style database. ACM Transactions on Graphics (TOG) 34, 4, 125.). FIG. 4 shows an example of generating a final hair model from a single image.

Implementation Example

The inventors implemented embodiments of the present disclosure on a machine equipped with an Intel Core i7-3770 central processing unit, an NVidia GTX 970 graphics processing unit and a 32 GB random access memory. The inventors have used all of the parameter values listed in the description of embodiments, and obtained all the experimental results shown in the drawings. The present disclosure can efficiently generate 3D models of a plurality of hair styles from a large number of Internet images, and these strands-level 3D models match greatly with the input images. For a typical 800·800 image, the entire process can be completed within 1 minute: hair segmentation and direction estimation can be completed less than 3 seconds, matching and deformation of 3D hair exemplars takes approximately 20 seconds, and final strands generation takes less than 30 seconds. In the aspect of preparing the training data, it takes an average of 1 minute to process an image; the decomposition and regeneration of the original 3D hair exemplars takes less than 10 hours; and the training of the neural network takes about 8 hours. 

What is claimed is:
 1. A single-image-based fully automatic three-dimensional (3D) hair modeling method, comprising the following steps: step 1: preprocessing of hair training data: labeling hair mask images and hair growth direction maps, and obtaining a classification of different hair styles by an unsupervised clustering method; step 2: fully automatic high-precision hair segmentation and direction estimation: training a deep neural network based on labeled data of step 1, utilizing a hierarchical deep convolutional neural network obtained by the training to achieve hair distribution class identification, hair segmentation and hair growth direction estimation; step 3: generation and organization of 3D hair exemplars: generating a large number of new hair style exemplars by decomposing and recombining hair of original hair models, and generating hair mask images and hair growth direction maps by projection to facilitate subsequent matching; step 4: data-driven hair modeling: matching the 3D hair exemplars in step 3 with a hair mask image and a hair growth direction map segmented in step 2, performing deformation, and generating a final model.
 2. The single-image-based fully automatic 3D hair modeling method according to claim 1, wherein step 1 comprises following sub-steps: step 1.1: downloading a large number of portrait images with hair from the Internet, and labeling the hair mask images and the hair growth direction maps; step 1.2: utilizing labeled hair data obtained in step 1.1 to calculate distribution characteristics of various hair styles for clustering.
 3. The single-image-based fully automatic 3D hair modeling method according to claim 1, wherein step 2 comprises following sub-steps: step 2.1: automatically estimating a hair region in an input image; step 2.2: utilizing a deep neural network Regions with Convolution Neural Network (R-CNN) to identify a class of a hair style based on the hair region obtained in step 2.1; step 2.3: selecting a corresponding segmentation neural network based on the hair style obtained in step 2.2 to segment hair from the image to obtain a hair mask image; step 2.4: selecting a corresponding direction estimation neural network based on the hair style obtained in step 2.2 to predict a direction map of the corresponding hair.
 4. The single-image-based fully automatic 3D hair modeling method according to claim 1, wherein step 3 comprises following sub-steps: step 3.1: decomposing strands of the original 3D hair models, and then mixing the decomposed strands to generate new hair exemplars; step 3.2: projecting the hair exemplars obtained in step 3.1 to generate the hair mask images and the hair growth direction maps to facilitate subsequent matching.
 5. The single-image-based fully automatic 3D hair modeling method according to claim 1, wherein step 4 comprises following sub-steps: step 4.1: matching a hair mask image and a hair growth direction map segmented in step 2 with the hair mask images and the growth hair growth direction maps generated by projecting the exemplars in step 3 to select a suitable set of exemplars; step 4.2: deforming hair exemplars in the step 4.1 to match hair in an image in a better way; step 4.3: performing direction map matching on the deformed exemplars obtained in step 4.2 according to the method in step 4.1 to select best exemplars to generate the final hair models. 